package com.jinmdz.fmis.dao.model.settlement;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.jinmdz.fmis.core.annotation.AnDict;
import com.jinmdz.fmis.core.constant.EDictCode;
import com.jinmdz.fmis.dao.base.BaseItem;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 费用结算信息
 *
 * @author LiCongLu
 * @date 2020-02-19 11:19
 */
public class ChargeSettleItem extends BaseItem {
    /**
     * 业务编码
     */
    private String businessCode;

    /**
     * 结算批次编号
     */
    private String settleBatchNo;

    /**
     * 应收金额
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private BigDecimal receiptCharge;

    /**
     * 优惠金额
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private BigDecimal discountCharge;

    /**
     * 惠民金额
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private BigDecimal benefitCharge;

    /**
     * 结算金额
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private BigDecimal settleCharge;

    /**
     * 结算时间
     */
    @JsonFormat(pattern = yyyy_MM_dd_HH_mm)
    private Date settleTime;

    /**
     * 结算类型
     */
    private Integer settleTypeCode;

    /**
     * 结算类型
     */
    @AnDict(dict = EDictCode.SETTLE_TYPE, ref = "settleTypeCode")
    private String settleType;

    /**
     * 收据号
     */
    private String receiptNo;

    /**
     * 是否退费
     */
    private Integer asRefund;

    /**
     * 是否审核
     */
    private Integer asVerify;

    /**
     * 日结审核主键
     */
    private Integer verifyId;

    /**
     * 是否打印发票
     */
    private Integer asInvoice;

    /**
     * 打印发票主键
     */
    private Integer invoiceId;

    /**
     * 结算经办人外键
     */
    private Integer settleUserId;

    /**
     * 随机码
     */
    private String randomCode;

    /**
     * 备注信息
     */
    private String remark;

    public String getBusinessCode() {
        return businessCode;
    }

    public ChargeSettleItem setBusinessCode(String businessCode) {
        this.businessCode = businessCode;
        return this;
    }

    public String getSettleBatchNo() {
        return settleBatchNo;
    }

    public ChargeSettleItem setSettleBatchNo(String settleBatchNo) {
        this.settleBatchNo = settleBatchNo;
        return this;
    }

    public BigDecimal getReceiptCharge() {
        return receiptCharge;
    }

    public ChargeSettleItem setReceiptCharge(BigDecimal receiptCharge) {
        this.receiptCharge = receiptCharge;
        return this;
    }

    public BigDecimal getDiscountCharge() {
        return discountCharge;
    }

    public ChargeSettleItem setDiscountCharge(BigDecimal discountCharge) {
        this.discountCharge = discountCharge;
        return this;
    }

    public BigDecimal getBenefitCharge() {
        return benefitCharge;
    }

    public ChargeSettleItem setBenefitCharge(BigDecimal benefitCharge) {
        this.benefitCharge = benefitCharge;
        return this;
    }

    public BigDecimal getSettleCharge() {
        return settleCharge;
    }

    public ChargeSettleItem setSettleCharge(BigDecimal settleCharge) {
        this.settleCharge = settleCharge;
        return this;
    }

    public Date getSettleTime() {
        return settleTime;
    }

    public ChargeSettleItem setSettleTime(Date settleTime) {
        this.settleTime = settleTime;
        return this;
    }

    public Integer getSettleTypeCode() {
        return settleTypeCode;
    }

    public ChargeSettleItem setSettleTypeCode(Integer settleTypeCode) {
        this.settleTypeCode = settleTypeCode;
        return this;
    }

    public String getSettleType() {
        return settleType;
    }

    public ChargeSettleItem setSettleType(String settleType) {
        this.settleType = settleType;
        return this;
    }

    public String getReceiptNo() {
        return receiptNo;
    }

    public ChargeSettleItem setReceiptNo(String receiptNo) {
        this.receiptNo = receiptNo;
        return this;
    }

    public Integer getAsRefund() {
        return asRefund;
    }

    public ChargeSettleItem setAsRefund(Integer asRefund) {
        this.asRefund = asRefund;
        return this;
    }

    public Integer getAsVerify() {
        return asVerify;
    }

    public ChargeSettleItem setAsVerify(Integer asVerify) {
        this.asVerify = asVerify;
        return this;
    }

    public Integer getVerifyId() {
        return verifyId;
    }

    public ChargeSettleItem setVerifyId(Integer verifyId) {
        this.verifyId = verifyId;
        return this;
    }

    public Integer getAsInvoice() {
        return asInvoice;
    }

    public ChargeSettleItem setAsInvoice(Integer asInvoice) {
        this.asInvoice = asInvoice;
        return this;
    }

    public Integer getInvoiceId() {
        return invoiceId;
    }

    public ChargeSettleItem setInvoiceId(Integer invoiceId) {
        this.invoiceId = invoiceId;
        return this;
    }

    public Integer getSettleUserId() {
        return settleUserId;
    }

    public ChargeSettleItem setSettleUserId(Integer settleUserId) {
        this.settleUserId = settleUserId;
        return this;
    }

    public String getRandomCode() {
        return randomCode;
    }

    public ChargeSettleItem setRandomCode(String randomCode) {
        this.randomCode = randomCode;
        return this;
    }

    public String getRemark() {
        return remark;
    }

    public ChargeSettleItem setRemark(String remark) {
        this.remark = remark;
        return this;
    }
}
